package com.itlong.cloud.operate.service;


import com.itlong.cloud.POJO.DTO.operate.OperatePropertyPackageDTO;
import com.itlong.cloud.POJO.PO.PropertyPackagePO;
import com.itlong.cloud.utils.page.Page;

import java.util.List;

/**
 * <desc>
 *      运营-套餐管理-物业套餐管理业务处理接口
 * </desc>
 *
 * @createDate  2020/3/24
 */
public interface IOperatePropertyPackageService {

    /**
     * <desc>
     *      获取物业套餐列表
     * </desc>
     *
     * @param operatePropertyPackageDTO 查询参数实体
     * @return
     * @Author Zhu.yj
     * @createDate  2020/3/24
     */
    Page<PropertyPackagePO> getPage(OperatePropertyPackageDTO operatePropertyPackageDTO) throws Exception;

    /**
     * <desc>
     *      更新物业套餐信息
     * </desc>
     *
     * @param propertyPackagePO 参数实体
     * @return
     * @Author Zhu.yj
     * @createDate  2020/3/24
     */
    Integer update(PropertyPackagePO propertyPackagePO) throws Exception;

    /**
     * <desc>
     *      保存物业套餐信息
     * </desc>
     *
     * @param propertyPackagePO 参数实体
     * @return
     * @Author Zhu.yj
     * @createDate  2020/3/24
     */
    Integer save(PropertyPackagePO propertyPackagePO) throws Exception;

    /**
     * <desc>
     *      批量删除物业套餐
     * </desc>
     *
     * @param propertyPackageIds 物业套餐id，多个逗号隔开
     * @return
     * @Author Zhu.yj
     * @createDate  2020/3/24
     */
    Integer delete(String propertyPackageIds) throws Exception;

//    /**
//     * <desc>
//     *      获取物业套餐绑定的账号
//     * </desc>
//     *
//     * @param propertyPackageId 物业套餐id
//     * @return
//     * @Author Zhu.yj
//     * @createDate  2020/3/24
//     */
//    List<String> getPropertyPackageAccount(String propertyPackageId) throws Exception;

//    /**
//     * <desc>
//     *      获取物业账号下的套餐列表
//     * </desc>
//     *
//     * @return 套餐id，套餐名称
//     * @Author Zhu.yj
//     * @createDate  2020/3/25
//     */
//    List<OperatePropertyPackageVO> getPackage(String projectId) throws Exception;

    /**
     * <desc>
     *      物业套餐分配功能
     * </desc>
     *
     * @param propertyFunctionIds 物业功能菜单id，多个逗号隔开
     * @param propertyPackageId  物业套餐id
     * @return
     * @Author Zhu.yj
     * @createDate  2020/3/25
     */
    Integer allotPropertyFunction(String propertyFunctionIds,String propertyPackageId) throws Exception;

//    /**
//     * <desc>
//     *      套餐分配用户
//     * </desc>
//     *
//     * @param propertyPackageId 物业套餐id
//     * @param allotUserIds  分配的用户id 逗号隔开
//     * @param userIds 本页所有用户id，逗号隔开
//     * @return
//     * @Author Zhu.yj
//     * @createDate  2020/3/26
//     */
//    Integer allotPackageUser(String propertyPackageId,String allotUserIds,String userIds) throws Exception;

    /**
     * <desc>
     *      获取单个物业套餐信息
     * </desc>
     *
     * @param propertyPackageId 物业套餐id
     * @return  单个物业套餐详细信息
     * @Author Zhu.yj
     * @createDate  2020/4/1
     */
    PropertyPackagePO getOne(String propertyPackageId) throws Exception;

    /**
     * <desc>
     *      获取绑定了套餐的用户列表
     * </desc>
     *
     * @param propertyPackageId 物业套餐id
     * @return
     * @Author Zhu.yj
     * @createDate  2020/4/3
     */
    List<String> getOther( String propertyPackageId) throws Exception;

}
